import Vue from 'vue'
import Vuex from 'vuex'
import {getInfoSync,setInfoSync,getRpIdSync,setRpIdSync} from '@/utils/store.js'
Vue.use(Vuex);

const getDefultInfo = () => {
	return {
		engineer_id:5,//工程师id
		type: '',//设备型号
		file: '',//设备图片
		user_dep:'',//客户公司
		user_address:'',//客户公司地址
		number:'',//设备机身号
		installDate:'',//安装日期
		configure:'',//设备配置
		user:'',//客户联系人
		user_phone:'',//客户联系方式
		ink_type:'',//墨水溶剂型号
		id: 41 ,//设备id
		status:'',//是否录入
	}

}
// 全局 state 对象，用于保存所有组件的公共数据
const state = {
  // 定义一个 user 对象
  // 在组件中是通过 this.$store.state.user 来获取
  
  equipmentInfo: getInfoSync() ? JSON.parse(getInfoSync()) : {
    engineer_id:5,
    type: '',//设备型号
    file: '',//设备图片
   status:'',//是否录入
    user_dep:'',//客户公司
    user_address:'',//客户公司地址
    number:'',//设备机身号
    installDate:'',//安装日期
    configure:'',//设备配置
    user:'',//客户联系人
    user_phone:'',//客户联系方式
    ink_type:'',//墨水溶剂型号
    id: 41
  },
  repairid: getRpIdSync() ? JSON.parse(getRpIdSync()) : 0
};

// 实时监听 state 值的最新状态，注意这里的 getters 可以理解为计算属性
const getters = {
  // 在组件中是通过 this.$store.getters.getUser 来获取
  getEquipmentInfo(state) {
    return state.equipmentInfo[0];
  },
  getRepairId(state) {
    return state.repairid;
  }
};

// 定义改变 state 初始值的方法，这里是唯一可以改变 state 的地方，缺点是只能同步执行
const mutations = {
  // 在组件中是通过 this.$store.commit('updateUser', user); 方法来调用 mutations
  setEquipmentInfo(state, equipmentInfo) {
    state.equipmentInfo = equipmentInfo;
	
  },
  setRepairId(state, repairid) {
    state.repairid = repairid;
  }
};

// 定义触发 mutations 里函数的方法，可以异步执行 mutations 里的函数
const actions = {
	setInfo(context,equipmentInfo){
		context.commit('setEquipmentInfo', equipmentInfo);
		setInfoSync(equipmentInfo)
	},
	
  // 在组件中是通过 this.$store.dispatch('asyncUpdateUser', user); 来调用 actions
  setRpId(context, id) {
    context.commit('setRepairId', id);
	setRpIdSync(id)
  }
};

export default new Vuex.Store({
  state,
  getters,
  mutations,
  actions
});